package com.bluefox.uac.service;

import com.bluefox.uac.model.User;

import java.util.List;

/**
 * UserService
 * @author SunFeng
 */
public interface UserService {

    /**
     * 根据ID获取资源
     *
     * @param id 资源实例ID
     * @return Id所指向的资源实例
     * @throws 当Id所指向的资源不存在时，抛CustomRuntimeException异常
     */
    User get(Long id);

    /**
     * 创建
     *
     * @param model 资源实例
     * @return 创建后的对象
     */
    User create(User model);

    /**
     * 更新
     *
     * @param model 编辑后的资源实例
     * @return 修改后的对象
     */
    User update(User model);

    /**
     * 删除
     *
     * @param id 资源实例ID
     */
    void delete(Long id);

    /**
     * 根据用户名查询用户
     * @param userName
     * @return
     */
    User findByUserName(String userName);

    /**
     * 获取用户权限
     * @param userName
     * @return
     */
    List<String> getUserRoles(String userName);

    void updatePass(String username, String newPass);
}
